package pl.edu.agh.mobsys.data.validation;

import pl.edu.agh.mobsys.data.ConnectionConfig;


/**
 * Zbiór metod na walidację danych używanych w aplikacji
 * */
public class Validator {

	/**
	 * Walidacja wartości loginu xmpp.
	 * 
	 * @return
	 * 	ostrzeżenie jeśli walidacja niepomyślna; inaczej null
	 * */
	public static String validateXmppId(String id) {
		if (id == null || "".equals(id)) {
			return "Fill in required fields.";
		}
		if (id.contains("@")) {
			return "Invalid symbol \"@\" used.";
		}
		return null;
	}

	/**
	 * Walidacja konfiguracji dostępu do serwera XMPP.
	 * 
	 * @return
	 * 	ostrzeżenie jeśli walidacja niepomyślna; inaczej null
	 * */
	public static String validateServerConfiguration(ConnectionConfig cc) {
		if (cc == null) {
			return "Server configuration not defined.";
		}
		if (cc.host == null || "".equals(cc.host)) {
			return "Server host not defined.";
		}
		if (cc.ip == null || "".equals(cc.ip)) {
			return "Server raw ip not defined.";
		}
		if (cc.port == null || "".equals(cc.port)) {
			return "Server port not defined - consider default port 5222).";
		}
		if (cc.username == null || "".equals(cc.username)) {
			return "XMPP Username not defined.";
		}
		if (cc.password == null || "".equals(cc.password)) {
			return "XMPP Password not defined.";
		}
		return null;
	}
		
}
